With the advent of cloud computing, multi-tenant Software-as-a-Service (SaaS) architectures are being used more amongst SaaS providers. In a multi-tenant SaaS architecture an application is deployed and maintained centrally, while administered and accessed remotely over Internet. The end users grouped as tenants, access features of the application and share the resources associated with the application. The access to the features of the application may be billed to the tenants on a subscription license model or ‘pay-per-use’ models.
Multi-tenant architecture results in many benefits to the SaaS provider, with centralized control on management of service and upgrades. The multi-tenant architecture allows scaling from a single tenant to thousands of tenants by simply plugging more hardware into the system, changing few configurations, and without modifying the software resources. Further, the nature of the multi-tenant architecture makes it easier for the SaaS provider to deliver more efficient and effective service and support as only one platform needs to be monitored and managed. Furthermore, upgrading the software version gets easier as modifications and upgrading needs to be done at a single and centralized place.
To adopt or implement the multi-tenant architecture for an application, many frameworks are available in the market for the SaaS providers. However, these frameworks suffer from numerous major gaps between the expectations of the SaaS provider and availability of the solutions. Some of the critical gaps with which the current frameworks are available are repeated job of wiring up the framework with Line Of Business (LOB) application, lack of customization, large number of dependencies with underlying technologies of the framework, no extensibility support to meet the future requirements, lack of productivity tools, the solution provided for a problem in a given context becoming irrelevant in another context, and supporting either design time integration or run time integration and not both. The above limitations or gaps of the available frameworks result in increased implementation or adoption time for the multi-tenant architecture. This in turn increases the time and costs to bring the SaaS based multi-tenant web application to the market and thus, decreasing the Returns on Investments (ROI).
In light of the above, there is a need for a framework to facilitate implementation of multi-tenant SaaS architecture for a software application by overcoming the limitations of the available solutions. Further, there is a need for a framework that could reduce the implementation or adoption time for the multi-tenant architecture and thus, increasing the ROI for the SaaS providers.